feat(ramps-controller): add unified getOrder to RampsService#7934
Merged
feat(ramps-controller): add unified getOrder to RampsService#7934
Conversation
Add a getOrder method to RampsService that calls the V2 unified order endpoint (GET /v2/providers/:providerCode/orders/:orderCode). This endpoint returns a normalized RampsOrder (DepositOrder shape) for all provider types, enabling mobile to use a single order processor instead of separate aggregator and deposit processors. Changes: - Add RampsOrder type and related types (RampsOrderStatus, etc.) - Add getOrder method to RampsService - Add RampsServiceGetOrderAction type - Wire getOrder into RampsController as a passthrough method - Export new types from index.ts Co-authored-by: Cursor <cursoragent@cursor.com>
- Add getOrderFromCallback method to extract orders from provider callback URLs - Sends callback URL to V2 backend for provider-specific parsing - Backend extracts order ID using provider logic - Returns full RampsOrder (same pattern as aggregator SDK) - Rename getWidgetUrl to getBuyWidget to return full BuyWidget object - Returns url, browser type, and orderId (for custom order tracking) - Mobile needs orderId for pre-order tracking like aggregator flow - Wire new action through messenger and export types This enables the V2 unified checkout to handle provider callbacks the same way the aggregator SDK does, with server-side URL parsing instead of client-side guessing.
The V2 API embeds the widget information directly in quote responses (url, browser type, orderId) instead of requiring a separate getBuyWidgetUrl call. Add buyWidget field to Quote type to match the actual API response.
…ider types The V2 API now returns full objects for the provider and fiatCurrency fields on orders instead of path strings. Add typed shapes for both and update RampsOrder accordingly so consumers can access name, links, symbol, decimals, and denomSymbol directly without parsing. Also fix getOrderFromCallback to extract just the order code from the full resource path returned by the callback API, preventing a doubled URL in the subsequent getOrder call.
Contributor
|
@metamaskbot publish-preview |
Contributor
|
@metamaskbot publish-preview |
Contributor
|
@metamaskbot publish-preview |
Contributor
|
Preview builds have been published. See these instructions for more information about preview builds. Expand for full list of packages and versions. |
Contributor
|
@metamaskbot publish-preview |
Contributor
|
Preview builds have been published. See these instructions for more information about preview builds. Expand for full list of packages and versions. |
AxelGes
approved these changes
Feb 19, 2026
pkowalski
approved these changes
Feb 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation
Add a
getOrdermethod toRampsServicethat calls the V2 unified order endpoint (GET /v2/providers/:providerCode/orders/:orderCode). This endpoint returns a normalizedRampsOrder(DepositOrder shape) for all provider types, enabling mobile to use a single order processor instead of separate aggregator and deposit processors.This is the core-side prerequisite for unifying order processing in metamask-mobile and eventually removing both
@consensys/on-ramp-sdkand@consensys/native-ramps-sdkfor order polling.Changes
RampsService.ts: AddRampsOrdertype and related types (RampsOrderStatus,RampsOrderNetwork,RampsOrderCryptoCurrency,RampsOrderPaymentMethod). AddgetOrder(providerCode, orderCode, wallet)method.RampsService-method-action-types.ts: AddRampsServiceGetOrderActiontype.RampsController.ts: AddgetOrderwrapper method. WireRampsService:getOrderinto allowed actions.index.ts: Export all new types.References
GET /v2/providers/:providerCode/orders/:orderCode(already live in onramp-api)Simulator.Screen.Recording.-.iPhone.16.Pro.-.2026-02-19.at.18.54.40.mov
Checklist
Made with Cursor
Note
Medium Risk
Introduces new network-facing endpoints and a new exported order type surface area; bugs could affect order polling/parsing and downstream consumers, though changes are additive and covered by tests.
Overview
Adds V2 unified order polling by introducing
RampsService.getOrder()(GET/v2/providers/:providerCode/orders/:orderCode) andRampsService.getOrderFromCallback()(callback parse endpoint + follow-up order fetch), and wiring both throughRampsControllerand the messenger action types.Exports a new normalized
RampsOrdermodel (plus currency/payment/status subtypes andRampsOrderStatus) from the package, updates tests to cover the new endpoints and error cases, and documents the change in the changelog (plus minor Transak test retry tweaks).Written by Cursor Bugbot for commit 8a5acbf. This will update automatically on new commits. Configure here.